home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / DRVLIB.NIC / O100 / OEMSETUP.INF < prev    next >
INI File  |  1996-07-31  |  61KB  |  1,794 lines

  1. ***********************************************************************
  2. ;
  3. ; OEMSETUP.INF
  4. ;
  5. ;       Olicom Ethernet PCI 10/100 network card and
  6. ;       driver SETUP INF file.
  7. ;
  8. ;***********************************************************************
  9.  
  10. ;-----------------------------------------------------------------------
  11. ; OPTION TYPE
  12. ; -----------
  13. ; This identifies the Option type we are dealing with.  The different
  14. ; possible types are:
  15. ;
  16. ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  17. ;
  18. ;  Types specific to networking:
  19. ;
  20. ; NetAdapter,        a netcard / adapter combination or just a netcard
  21. ; NetDriver,         just a netcard driver
  22. ; NetTransport,      a complete NDIS-compliant TDI transport stack
  23. ; NetService,        an NT networking service
  24. ; NetWork,           a complete network ensemble.
  25. ; NetProvider        a complete network which supports NT MPR protocol
  26. ;-----------------------------------------------------------------------
  27.  
  28. [Identification]
  29.     OptionType = NetAdapter
  30.  
  31. ;-----------------------------------------------------------------------
  32. ; PlatformsSupported
  33. ; ------------------
  34. ; This identifies the platforms supported by the adapter card.
  35. ; Possible types are:
  36. ;
  37. ; ISA, EISA and MCA
  38. ;
  39. ; For PCI the use of ISA is required. (MeThinks -TM)
  40. ;
  41. ;-----------------------------------------------------------------------
  42.  
  43. [PlatformsSupported]
  44.     ISA
  45.     EISA
  46.     "Jazz-Internal Bus"
  47.  
  48. ;-----------------------------------------------------------------------
  49. ; LANGUAGES SUPPORTED
  50. ; -------------------
  51. ;
  52. ; The languages supported by the OEM INF, For every language supported
  53. ; we need to have a separate text section for every displayable text
  54. ; section.
  55. ;
  56. ;-----------------------------------------------------------------------
  57.  
  58. [LanguagesSupported]
  59.     ENG
  60.  
  61. ;-----------------------------------------------------------------------
  62. ; OPTION LIST
  63. ; -----------
  64. ; This section lists the OEM Option key names.  These keys are locale
  65. ; independent and used to represent the option in a locale independent
  66. ; manner.
  67. ;
  68. ;-----------------------------------------------------------------------
  69.  
  70. [Options]
  71.     O100PCI
  72.  
  73. ;-----------------------------------------------------------------------
  74. ; OPTION TEXT SECTION
  75. ; -------------------
  76. ; These are text strings used to identify the option to the user.  There
  77. ; are separate sections for each language supported.  The format of the
  78. ; section name is "OptionsText" concatenated with the Language represented
  79. ; by the section.
  80. ;
  81. ;-----------------------------------------------------------------------
  82.  
  83. [OptionsTextENG]
  84.     O100PCI  = "Olicom Ethernet PCI 10/100 Adapter"
  85.  
  86.  
  87. [Files-Inf]
  88. 1, oemsetup.inf, SIZE=65535, RENAME=$(!UG_Filename)
  89.  
  90.  
  91. [Files-AUX]
  92. 1, O100NT.DLL
  93. 1, O100NT.HLP
  94.  
  95. [Files-O100PCI]
  96. 1, O100.SYS
  97. 1, PROKDD.SYS
  98.  
  99. ;***********************************************************************
  100. ; CONSTANTS FOR USING DIALOGS
  101. ;***********************************************************************
  102.  
  103. [FileConstants]
  104. ;
  105. ;  File names, etc.
  106. ;
  107. UtilityInf      = "UTILITY.INF"
  108. subroutineinf   = "SUBROUTN.INF"
  109. SoftwareType    = "driver"
  110. Exit_Code       = 0
  111.  
  112. ;
  113. ; EventLog Message File
  114. ;
  115. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  116. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  117.  
  118. ;
  119. ; Product Info
  120. ;
  121. Manufacturer        =  "Olicom"
  122. ProductMajorVersion = "3"
  123. ProductMinorVersion = "1"
  124. ProductVersion      = $(ProductMajorVersion)"."$(ProductMinorVersion)
  125.  
  126. ;
  127. ; Software
  128. ;
  129. ProductSoftwareName     = "O100"
  130. ProductSoftwareTitle    = "Olicom Ethernet PCI 10/100 Adapter Driver"
  131. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\O100.sys"
  132. NetRuleSoftwareType     = "O100Sys ndisDriver O100Driver"
  133. NetRuleSoftwareUse      = $(SoftwareType)
  134. NetRuleSoftwareBindForm = """O100Sys"" yes no container"
  135. NetRuleSoftwareClass    = {"O100Driver basic"}
  136. NetRuleSoftwareBindable = {"O100Driver O100Adapter non exclusive 100"}
  137.  
  138. ;
  139. ; Hardware
  140. ;
  141. ProductHardwareName     = "O100"
  142. ProductHardwareTitle    = "Olicom Ethernet PCI 10/100 Adapter"
  143. NetRuleHardwareType     = "O100 O100Adapter"
  144. NetRuleHardwareBindForm = " yes yes container"
  145. NetRuleHardwareClass    = {"O100Adapter basic"}
  146.  
  147. ;
  148. ; Registry Key
  149. ;
  150. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  151. ParamKeyName    = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  152.  
  153. [ProductType]
  154. STF_PRODUCT  = Winnt
  155. STF_PLATFORM = I386
  156.  
  157. [GeneralConstants]
  158. ;
  159. ;  Program flow control variables.
  160. ;
  161. from      = ""
  162. to        = ""
  163.  
  164. ;
  165. ;  Return codes; Exit_Code is set to one of these
  166. ;
  167. ExitCodeOk     = 0
  168. ExitCodeCancel = 1
  169. ExitCodeFatal  = 2
  170.  
  171. KeyNull            = ""
  172. MAXIMUM_ALLOWED    = 33554432
  173. RegistryErrorIndex = NO_ERROR
  174. KeyProduct         = ""
  175. KeyParameters      = ""
  176.  
  177. TRUE            = 1
  178. FALSE           = 0
  179. NoTitle         = 0
  180.  
  181. ExitState   = "Active"
  182. OldVersionExisted = $(FALSE)
  183.  
  184. DriverPath      = $(!STF_NTPATH)\drivers
  185.  
  186. ;***********************************************************************
  187. ; Language-Dependent Dialog Constants
  188. ;***********************************************************************
  189.  
  190. [FileConstantsENG]
  191. ;
  192. ;  Variables to support thermometer gauge and error dialogs
  193. ;
  194. ProCaption   = "Windows NT Setup"
  195. ProCancel    = "Cancel"
  196. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  197.                "Are you sure you want to cancel copying files?"
  198.  
  199. ProCancelCap = "Network Setup Message"
  200. ProText1     = "Copying:"
  201. ProText2     = "To:"
  202.  
  203. ;
  204. ; Product Info
  205. ;
  206. FunctionTitle = "Olicom Ethernet PCI 10/100 Adapter Setup"
  207.  
  208. ;
  209. ; Software
  210. ;
  211. ProductSoftwareDescription = "Olicom Ethernet PCI 10/100 Adapter Driver"
  212.  
  213. ;
  214. ; Hardware
  215. ;
  216. ProductHardwareDescription = "Olicom Ethernet PCI 10/100 Adapter"
  217.  
  218. ;
  219. ; Dialog Message Information
  220. ;
  221. CANNOT_FIND_ANY_CARD       = "Network card is not present in the system"
  222.  
  223. [DialogConstantsENG]
  224. ;
  225. ; Common button names, etc.
  226. ;
  227. Help        = "&Help"
  228. Exit        = "Cancel"
  229. OK          = "OK"
  230. HelpContext = ""
  231. Continue    = "Continue"
  232. Cancel      = "Cancel"
  233.  
  234. [date]
  235.     ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
  236.     ; Minute, Second }
  237.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  238.  
  239. [Source Media Descriptions]
  240.     1  = "OC-2805 Driver Disk"  
  241.  
  242. [Signature]
  243.     FileType = MICROSOFT_DRVLIB_FILE
  244. [GetSignature]
  245.     read-syms Signature
  246.     return $(FileType)
  247.  
  248. ;-----------------------------------------------
  249. ; Input DIALOGS
  250. ;-----------------------------------------------
  251. [FileDependentDlgENG]
  252.  
  253. ;---------------------------------------------------------------------------
  254. ; 1. Identify
  255. ;
  256. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  257. ;                as we are choosing currently.
  258. ;
  259. ; INPUT:         None
  260. ;
  261. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  262. ;                $($R1): Option Type (COMPUTER ...)
  263. ;                $($R2): Diskette description
  264. ;---------------------------------------------------------------------------
  265.  
  266. [Identify]
  267.     Debug-Output "foobar 1"
  268.     read-syms Identification
  269.  
  270.     set !G:DebugOutputControl = 1
  271.  
  272.     set Status     = STATUS_SUCCESSFUL
  273.     set Identifier = $(OptionType)
  274.     set Media      = #("Source Media Descriptions", 1, 1)
  275.  
  276.     Debug-Output "OPTIONS: $(Status) $(Identifier) $(Media)"
  277.     Return $(Status) $(Identifier) $(Media)
  278.  
  279. ;------------------------------------------------------------------------
  280. ; 2. ReturnOptions:
  281. ;
  282. ; DESCRIPTION:   To return the option list supported by this INF and the
  283. ;                localised text list representing the options.
  284. ;
  285. ;
  286. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  287. ;
  288. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  289. ;                                STATUS_NOLANGUAGE
  290. ;                                STATUS_FAILED
  291. ;                                STATUS_NOTSUPPORTED
  292. ;
  293. ;                $($R1): Option List
  294. ;                $($R2): Option Text List
  295. ;------------------------------------------------------------------------
  296.  
  297. [ReturnOptions]
  298.     set Status        = STATUS_FAILED
  299.     set OptionList     = {}
  300.     set OptionTextList = {}
  301.  
  302.     ;
  303.     ; Check if the language requested is supported
  304.     ;
  305.     set LanguageList = ^(LanguagesSupported, 1)
  306.     Ifcontains(i) $($0) in $(LanguageList)
  307.         ;
  308.         ; Check if the platforms requested is supported
  309.         ;
  310.         ifstr(i) $($1) == ""
  311.             goto returnoptions
  312.         endif
  313.  
  314.         set PlatformList = ^(PlatformsSupported, 1)
  315.         Ifcontains(i) $($1) in $(PlatformList)
  316.             goto returnoptions
  317.         else
  318.             set Status = STATUS_NOTSUPPORTED
  319.             goto finish_ReturnOptions
  320.         endif
  321.     else
  322.         set Status = STATUS_NOLANGUAGE
  323.         goto finish_ReturnOptions
  324.     endif
  325.  
  326.     ;
  327.     ; form a list of all the options and another of the text representing
  328.     ;
  329. returnoptions = +
  330.     set OptionList     = ^(Options, 1)
  331. ;       set OptionList  = $(Options)
  332.     set OptionTextList = ^(OptionsText$($0), 1)
  333. ;       set OptionTextList = $(OptionsText$($0))
  334.     set Status         = STATUS_SUCCESSFUL
  335.  
  336. finish_ReturnOptions = +
  337.     Return $(Status) $(OptionList) $(OptionTextList)
  338.  
  339. ;------------------------------------------------------------------------
  340. ; InstallOption:
  341. ;
  342. ;      This section is shelled to by main installation processing
  343. ;      or by NCPASHEL.INF during reconfig, removal, update, etc.
  344. ;
  345. ; FUNCTION:  To copy files representing Options
  346. ;            To configure the installed option
  347. ;            To update the registry for the installed option
  348. ;
  349. ; INPUT:     $($0):  Language to use
  350. ;            $($1):  OptionID to install
  351. ;            $($2):  SourceDirectory
  352. ;            $($3):  AddCopy  (YES | NO)
  353. ;            $($4):  DoCopy   (YES | NO)
  354. ;            $($5):  DoConfig (YES | NO)
  355. ;
  356. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  357. ;                            STATUS_NOLANGUAGE |
  358. ;                            STATUS_USERCANCEL |
  359. ;                            STATUS_FAILED
  360. ;------------------------------------------------------------------------
  361. [InstallOption]
  362.  
  363.     set !G:DebugOutputControl = 1
  364.     ;
  365.     ; Set default values
  366.     ;
  367.     Debug-Output "At InstallOption"
  368.     set Status   = STATUS_FAILED
  369.  
  370.     ;
  371.     ; extract parameters
  372.     ;
  373.     set Option   = $($1)
  374.     set SrcDir   = $($2)
  375.     set AddCopy  = $($3)
  376.     set DoCopy   = $($4)
  377.     set DoConfig = $($5)
  378.  
  379.     ;
  380.     ; Check if the language requested is supported
  381.     ;
  382.     set LanguageList = ^(LanguagesSupported, 1)
  383.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  384.         Return STATUS_NOLANGUAGE
  385.     endif
  386.  
  387.     set-subst LF = "\n"
  388.  
  389.     read-syms GeneralConstants
  390.     read-syms FileConstants
  391.  
  392.     read-syms DialogConstants$(!STF_LANGUAGE)
  393.     ifstr(i) $(!NTN_Origination) == "NCPA"
  394.         set Continue = "OK"
  395.     endif
  396.  
  397.     read-syms FileConstants$(!STF_LANGUAGE)
  398.  
  399.     detect date
  400.  
  401.     set-title  $(FunctionTitle)
  402.  
  403.     set to   = Begin
  404.     set from = Begin
  405.  
  406.     ;
  407.     ; Assume all is well.
  408.     ;
  409.     set CommonStatus = STATUS_SUCCESSFUL
  410.  
  411.     EndWait
  412.  
  413. ;
  414. ; Set up the operation-mode-based variables and welcome
  415. ; the user.  If the "install mode" variable is improperly set,
  416. ; assume this is a new installation.
  417. ;
  418. Begin = +
  419.     Debug-Output "At Begin"
  420.  
  421.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  422.         set StartLabel = removeadapter
  423.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  424.         set StartLabel = UpgradeSoftware
  425.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  426.         set StartLabel = bindingadapter
  427.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  428.         set StartLabel = configureadapter
  429.         ;
  430.         ; You cannot config the software component
  431.         ;
  432.         Debug-Output "Configure: ProductKeyName, NTN_RegBase="$(ProductKeyName)","$(!NTN_RegBase)
  433.  
  434.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  435.             Debug-Output "Cannot configure the O100 driver software."
  436. ;           Shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" "Equal case"
  437.             goto setfailed
  438.         else
  439.             Debug-Output "Configuring the O100 driver software."
  440.  
  441. ;
  442. ;   This happens when the user is trying to configure the adapter.
  443. ;   We're going to allow the user to reconfigure the configurable
  444. ;   parameters: FIFO, ON, OFF, and Slot/EID
  445. ;
  446. ;   Since we've already installed the driver we have initial values for
  447. ;   these already in the registry (see the adapterverify section),
  448. ;   get the existing values and put them in the dialog as the defaults.
  449. ;
  450.             ;********************************************************
  451.             ; 1) Get the current values.
  452.  
  453.             ;    Get some handles, etc before fetching the params
  454.             ;
  455.             Ifstr $(KeyProduct) == $(KeyNull)
  456.                 OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  457.                 Ifstr $(KeyProduct) == $(KeyNull)
  458.                     set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  459.                     Debug-Output "Cannot find component product key"
  460.                     goto fatalregistry
  461.                 Endif
  462.             Endif
  463.  
  464.             ;
  465.             ; Get the other parameters;  they're attached to the service parameters key
  466.             ;
  467.             Debug-Output "INF: Shelling to FindService"
  468.  
  469.             Shell $(UtilityInf) FindService, $(KeyProduct)
  470.             Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  471.                 Debug-Output "INF: FindService shell failure"
  472.                 Goto ShellCodeError
  473.             Endif
  474.  
  475.             Ifstr(i) $($R0) != NO_ERROR
  476.                 Debug-Output "INF: FindService Shell error: "$($R0)
  477.                 Goto fatalregistry
  478.             Endif
  479.  
  480.             Set KeyParameters = $($R2)
  481.  
  482.             ;
  483.             ;  We don't need the services key, so close it.
  484.             ;
  485.             CloseRegKey $($R1)
  486.  
  487.             Ifstr $(KeyParameters) == $(KeyNull)
  488.                 set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  489.                 Debug-Output "Cannot find component service"
  490.                 goto fatalregistry
  491.             Endif
  492.  
  493.             set ValueName = ""
  494.             set ValueData = ""
  495.             set ValueStr  = ""
  496.             set ValueList = {}
  497.  
  498.             ;
  499.             ; Get the old values, finally.
  500.             ;
  501.             EnumRegValue $(KeyParameters) ValueList
  502.  
  503.             ForListDo $(ValueList)
  504.                 set ValueItem = $($)
  505.                 set ValueName = *($(ValueItem),1)
  506.                 set ValueData = *($(ValueItem),4)
  507.  
  508.                 Ifstr(i) $(ValueName) == "Fifo"
  509.                     set FifoValue = $(ValueData)
  510.                     Debug-Output "Registry FIFO: "$(FifoValue)
  511.  
  512.                 else-ifstr(i) $(ValueName) == "On"
  513.                     set OnValue = $(ValueData)
  514.                     Debug-Output "Registry ON: "$(OnValue)
  515.  
  516.                 else-ifstr(i) $(ValueName) == "Off"
  517.                     set OffValue = $(ValueData)
  518.                     Debug-Output "Registry OFF: "$(OffValue)
  519.  
  520.                 else-ifstr(i) $(ValueName) == "Threshold"
  521.                     set ThresholdValue = $(ValueData)
  522.                     Debug-Output "Registry THRESHOLD: "$(ThresholdValue)
  523.  
  524.                 else-ifstr(i) $(ValueName) == "Speed"
  525.                     set SpeedValue = $(ValueData)
  526.                     Debug-Output "Registry SPEED: "$(SpeedValue)
  527.  
  528.                 else-ifstr(i) $(ValueName) == "Slot"
  529.                     set SlotValue = $(ValueData)
  530.                     Debug-Output "Registry SLOT: "$(SlotValue)
  531.  
  532.                 else-ifstr(i) $(ValueName) == "Eid"
  533.                     set NodeAddressValue = $(ValueData)
  534.                     Debug-Output "Registry NodeAddress: "$(NodeAddressValue)
  535.  
  536.                 else-ifstr(i) $(ValueName) == "BusTypeLocal"
  537.                     set BusTypeValue = $(ValueData)
  538.                     Debug-Output "Registry BusTypeLocal: "$(BusTypeValue)
  539.  
  540.                 else-ifstr(i) $(ValueName) == "MapRegisters"
  541.                     set MapRegistersValue = $(ValueData)
  542.                     Debug-Output "Registry MapRegisters: "$(MapRegistersValue)
  543.                 endif
  544.             EndForListDo
  545.  
  546.             ;
  547.             ; Might have to set defaults - just in case.
  548.             ;
  549.             ifstr(i) $(FifoValue) == ""
  550.                    set FifoValue = 12
  551.                    Debug-Output "Setting Default FIFO"
  552.             endif
  553.  
  554.             ifstr(i) $(OnValue) == ""
  555.                    set OnValue = 272
  556.                    Debug-Output "Setting Default ON"
  557.             endif
  558.  
  559.             ifstr(i) $(OffValue) == ""
  560.                    set OffValue = 2
  561.                    Debug-Output "Setting Default OFF"
  562.             endif
  563.  
  564.             ifstr(i) $(SlotValue) == ""
  565.                    set SlotValue = 0
  566.                    Debug-Output "Setting Default SLOT"
  567.             endif
  568.  
  569.             ifstr(i) $(NodeAddressValue) == ""
  570.                    set NodeAddressValue = 0
  571.                    Debug-Output "Setting Default NODEADDRESS"
  572.             endif
  573.  
  574.             ifstr(i) $(SpeedValue) == ""
  575.                    set Speed = 0
  576.                    Debug-Output "Setting Default SPEED"
  577.             endif
  578.  
  579.             ifstr(i) $(ThresholdValue) == ""
  580.                    set ThresholdValue = 16
  581.                    Debug-Output "Setting Default THRESHOLD"
  582.             endif
  583.  
  584.                 ifstr(i) $(MapRegistersValue) == ""
  585.                    ifstr(i)     $(BusTypeValue) == "5"
  586.                       set MapRegistersValue = 10
  587.                    else-ifstr(i) $(BusTypeValue) == "2"
  588.                           set MapRegistersValue = 32
  589.                    endif
  590.                    Debug-Output "Setting Default THRESHOLD"
  591.             endif
  592.  
  593.  
  594.             ;********************************************************
  595.             ; 2) At this point, we have the current registry values
  596.             ;    for the variable parameters.
  597.             ;    Now we need to open up the DLL and tell it what the
  598.             ;    the values are.
  599.  
  600.             ;
  601.             ; Load the O100NT.DLL and set the current values.
  602.             ;
  603.  
  604.             LoadLibrary "x" $(!STF_NTPATH)\O100NT.DLL MYLIBHANDLE
  605.             ;InitSlotArray
  606.             Debug-Output "made it past load library, right before initslotaray"
  607.             ;LibraryProcedure MyResult $(MYLIBHANDLE), InitSlotArray  ;, $(!STF_HWND), $(!NCPA_HANDLE)
  608.             Debug-Output "made it past initslotaray"
  609.             Debug-Output $(NETCARD_ID)
  610.  
  611.             Ifstr(i) $(BusTypeValue) == "5"
  612.                 ;
  613.                 ;check to see if there are pci adapters in the system
  614.                 ;
  615.                 LibraryProcedure MyResult $(MYLIBHANDLE), StuffNodeAddress, $(!STF_HWND), $(!NCPA_HANDLE), $(!STF_WINDOWSSYSPATH)\drivers
  616.                 ;
  617.                 ifstr(i) $(MyResult) == "DETECTED"
  618.                     ;the dll detects some pci adapters
  619.                     goto ContinueConf
  620.                 endif
  621.             endif
  622.  
  623.             set NoCard = "TRUE"
  624.             goto ContinueConf
  625.  
  626. ContinueConf = +
  627.             ; this is a test to see if I can pass a string with all the parameters in it
  628.             ; to the dll
  629.             ;
  630.             ; first I need to put the values in a list
  631.             ; then I need to send that list to my dll
  632.             ;
  633.             ;   for PCI  {""PCIBusType"",""NodeAddress"",""speed"",""threshold"",""fifo"",""on"",""off""}
  634.  
  635.             ifstr(i)  $(BusTypeValue) == "5"
  636.                set ValueList2 = {5,$(NodeAddressValue),$(SpeedValue),$(ThresholdValue),$(FifoValue),$(OnValue),$(OffValue),$(MapRegistersValue)}
  637.             endif
  638.  
  639.             Debug-Output "VallistBefore1:  $(ValueList2)"
  640.             LibraryProcedure MyResult $(MYLIBHANDLE), SetValues, $(!STF_HWND), $(!NCPA_HANDLE), $(ValueList2)
  641.             Debug-Output "VallistBefore2:  $(ValueList2)"
  642.  
  643.  
  644.             ;
  645.             ; Now put up the dialog box and it should have the last user
  646.             ; entered values.
  647.             ;
  648. ; kroot
  649.             ; get our services subkey so the DLL know our current instance
  650.  
  651.             Debug-Output "***************** Get the instance 1 *****************"
  652.             OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  653.                   $(MAXIMUM_ALLOWED) NetworkCardKey
  654.             Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  655.                 ;
  656.                 ; Get Service name
  657.                 ;
  658.                 GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  659.                 set ServiceName = *($(ServiceNameInfo), 4)
  660.  
  661.  
  662.                 CloseRegKey $(NetworkCardKey)
  663.             else
  664.                 ;
  665.                 ; Error, cannot open network card key
  666.                 ;
  667.                 Debug-Output "Unable to open NTN_RegBase: $(!NTN_RegBase)"
  668.                 set ServiceName = ""
  669.                 ;goto setfailed
  670.             endif
  671. ; kroot
  672.  
  673.             Debug-Output "My service name is $(ServiceName)"
  674.  
  675.             LibraryProcedure MyResult $(MYLIBHANDLE), ConfigFunc, +
  676.                              $(!STF_HWND), $(BusTypeValue), $(ServiceName)
  677.  
  678.             ifstr(i) $(MyResult) == "CANCEL"
  679.                 FreeLibrary $(MYLIBHANDLE)
  680.                 goto setfailed
  681.             endif
  682.  
  683.             ifstr(i) $(MyResult) == "OK"
  684.                 ;
  685.                 ; If the user says it's OK, go get the new parameter values...
  686.                 ;
  687.                 LibraryProcedure ValueList2 $(MYLIBHANDLE), GetValues, $(!STF_HWND), $(!NCPA_HANDLE)
  688.                 Debug-Output "VallistAfter:  $(ValueList2)"
  689.  
  690.                 ;
  691.                 ; Set the values to the returned values
  692.                 ;
  693.                 ifstr(i) $(BusTypeValue) == "2"
  694.                     set SlotValue = *($(ValueList2),2)
  695.                 else-ifstr(i) $(BusTypeValue) == "5"
  696.                     set NodeAddressValue = *($(ValueList2),2)
  697.                 endif
  698.                 set SpeedValue = *($(ValueList2),3)
  699.                 set ThresholdValue = *($(ValueList2),4)
  700.                 set FifoValue = *($(ValueList2),5)
  701.                 set OnValue = *($(ValueList2),6)
  702.                 set OffValue = *($(ValueList2),7)
  703.                 set MapRegistersValue = *($(ValueList2),8)
  704.  
  705.                 Debug-Output "BusTypeLocal: $(BusTypeValue)"
  706.                 Debug-Output "Speed: $(SpeedValue)"
  707.                 Debug-Output "Threshold: $(ThresholdValue)"
  708.                 Debug-Output "Fifo: $(FifoValue)"
  709.                 Debug-Output "On: $(OnValue)"
  710.                 Debug-Output "Off: $(OffValue)"
  711.                 Debug-Output "Threshold: $(SlotValue)"
  712.  
  713.                 Debug-Output "NodeAddress: $(NodeAddressValue)"
  714.  
  715. writeparameters1 = +
  716.  
  717.                 ;
  718.                 ; ...and write them to the registry.
  719.                 ;
  720.                 Debug-Output "At writeparameters"
  721.  
  722.                 Shell $(UtilityInf), GetBusTypeNum
  723.  
  724.                 set BusTypeNum = $($R1)
  725.  
  726.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  727.                     Debug-Output "ShellCode error."
  728.                     goto ShellCodeError
  729.                 endif
  730.  
  731.                 ;
  732.                 ; Add the rest of the parameters to the Services area
  733.                 ;
  734.                 ifstr(i) $(BusTypeValue) == "5"     ; if pci
  735.                     set NewValueList = { +
  736.                                        {Fifo,$(NoTitle),$(!REG_VT_DWORD),$(FifoValue)},+
  737.                                        {On,$(NoTitle),$(!REG_VT_DWORD),$(OnValue)},+
  738.                                        {Eid,$(NoTitle),$(!REG_VT_DWORD),$(NodeAddressValue)},+
  739.                                        {Speed,$(NoTitle),$(!REG_VT_DWORD),$(SpeedValue)},+
  740.                                        {Threshold,$(NoTitle),$(!REG_VT_DWORD),$(ThresholdValue)},+
  741.                                        {MapRegisters,$(NoTitle),$(!REG_VT_DWORD),$(MapRegistersValue)},+
  742.                                        {Off,$(NoTitle),$(!REG_VT_DWORD),$(OffValue)} +
  743.                                        }
  744.                     Debug-Output "writeParam1: PCI NewValueList going to registry:  $(NewValueList)"
  745.                 endif
  746.  
  747.                 Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  748.  
  749.                 CloseRegKey $(KeyParameters)
  750.  
  751.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  752.                     Debug-Output "ShellCode error."
  753.                     goto ShellCodeError
  754.                 endif
  755.  
  756.                 set RegistryErrorIndex = $($R0)
  757.  
  758.                 Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  759.                     Debug-Output "Registry error: Add value list"
  760.                     goto fatalregistry
  761.                 endif
  762.  
  763.             endif   ; OK
  764.  
  765.             FreeLibrary $(MYLIBHANDLE)
  766.  
  767.             goto successful
  768.         endif
  769.  
  770.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  771.             Debug-Output "ShellCode error: cannot get an error string."
  772.             goto ShellCodeError
  773.         endif
  774.  
  775.         set Error = $($R0)
  776.         set from = end
  777.         set to = end
  778.         goto nonfatalinfo
  779.     else
  780.         set StartLabel = installadapter
  781.         set OEM_ABANDON_OPTIONS = {}
  782.         set OEM_ABANDON_SOFTWARE = FALSE
  783.         set OEM_ABANDON_ON = TRUE
  784.     endif
  785.  
  786.     Set from = $(fatal)
  787.     Set to = $(fatal)
  788.     Goto $(StartLabel)
  789.  
  790. ;-----------------------------------------------
  791. ; Installation Section
  792. ;-----------------------------------------------
  793.  
  794. installadapter = +
  795.     Debug-Output "At installadapter"
  796.     Debug-Output ": ProductKeyName=$(ProductKeyName), NTN_RegBase=$(!NTN_RegBase)"
  797.  
  798.     ;
  799.     ; First, check whether the same version of the software exists
  800.     ;
  801.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  802.  
  803.     Ifstr $(KeyProduct) != $(KeyNull)
  804.         ;
  805.         ; Same version already existed in the local machine
  806.         ; Popup the dialog and ask the user whether he wants to continue
  807.         ;
  808.         CloseRegKey $(KeyProduct)
  809.  
  810.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  811.            ;
  812.            ; Cannot Install the same software again
  813.            ;
  814.            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle), $(ProductVersion)
  815.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  816.                Debug-Output "ShellCode error: cannot get an error string."
  817.                goto ShellCodeError
  818.            endif
  819.            goto end
  820.         else
  821.            ;
  822.            ; Add a new adapter card?
  823.            ;
  824.            set OldVersionExisted = $(TRUE)
  825.         endif
  826.     endif
  827.  
  828.     goto adapterverify
  829.  
  830. ;-----------------------------------------------
  831. ; Configuration Section
  832. ;-----------------------------------------------
  833. configureadapter = +
  834.     Debug-Output "At configureadapter"
  835.  
  836.     set Error = "Configure: Sorry, not yet implemented."
  837.     goto fatal
  838.  
  839. adapterverify = +
  840.  
  841. ; CardFound =  +
  842.  
  843.  ;   ifstr $($R0) != "NO_ERROR"
  844.  ;       ifstr $($R0) != "STATUS_SUCCESSFUL"
  845.  ;           set Error = $($R0)
  846.  ;           goto fatal
  847.  ;       endif
  848.  ;   endif
  849.  
  850.  ;   ifstr(i) $($R1) == {}
  851.  ;       set Error = $(CANNOT_FIND_ANY_CARD)
  852.  ;       set CommonStatus = STATUS_USERCANCEL
  853.  ;       set from = end
  854.  ;       goto nonfatal
  855.  ;   endif
  856.  
  857.     set NoCard = "FALSE"
  858.     set AdapterList = $($R1)
  859.  
  860.     ;
  861.     ; Add Software Component
  862.     ;
  863.     ;ifint $(OldVersionExisted) == $(FALSE)
  864.         ifstr(i) $(!NTN_InstallMode) == "install"
  865.             Ifstr(i) $(DoCopy) == "YES"
  866.  
  867.                 Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  868.  
  869.                 Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  870.                     Goto ShellCodeError
  871.                 Else-Ifstr(i) $($R0) == STATUS_FAILED
  872.                     Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  873.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  874.                         goto ShellCodeError
  875.                     endif
  876.                     set Error = $($R0)
  877.                     Goto fatal
  878.                 Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  879.                     Goto successful
  880.                 Endif
  881.  
  882.                 Set SrcDir = $($R1)
  883.  
  884.             Endif
  885.  
  886.             Debug-Output "At install Install-Option"
  887.  
  888.             install "Install-Option"
  889.             ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  890.                 Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  891.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  892.                     goto ShellCodeError
  893.                 endif
  894.                 set Error = $($R0)
  895.                 goto fatal
  896.             endif
  897.         endif
  898.  
  899.  
  900. ;--------------- this used to be before the copy ------------------------------
  901. ;********************
  902.     Debug-Output "At adapterverify"
  903.  
  904.     StartWait
  905.  
  906.     set DriverOnly = "FALSE"
  907.  
  908.         LibraryProcedure STATUS,$(!LIBHANDLE), CopySingleFile $(SrcDir)\o100nt.dll $(!STF_WINDOWSSYSPATH)\o100nt.dll
  909.     LibraryProcedure STATUS,$(!LIBHANDLE), CopySingleFile $(SrcDir)\o100nt.hlp $(!STF_WINDOWSSYSPATH)\o100nt.hlp
  910.  
  911.     LoadLibrary "x" $(!STF_NTPATH)\O100NT.DLL MYLIBHANDLE
  912.     Debug-Output "made it past load library, right before initslotaray"
  913.     Debug-Output $(NETCARD_ID)
  914.  
  915.     Ifstr(i) $(Option) == "O100PCI"
  916.        ;
  917.        ; This call should shove the node address values into the dll's global variable list
  918.        ;
  919.                         LibraryProcedure MyResult $(MYLIBHANDLE), StuffNodeAddress, $(!STF_HWND), $(!NCPA_HANDLE), $(!STF_WINDOWSSYSPATH)\drivers
  920.        ifstr(i) $(MyResult) == "DETECTED"
  921.           ;the dll detects some pci adapters
  922.           goto ContinueInst
  923.        endif
  924.     endif
  925.  
  926.     set NoCard = "TRUE"
  927.     goto AddDriverWithoutBoard
  928.  
  929. ;--------------- end stuff I copied -------------------------------------------
  930.  
  931. ContinueInst = +
  932.  
  933.     ifint $(OldVersionExisted) == $(FALSE)
  934.  
  935.         Debug-Output "At AddSoftwareComponent $(OldVersionExisted) ::::: $(FALSE)"
  936.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  937.             $(ProductSoftwareName), +
  938.             $(ProductSoftwareName), +
  939.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  940.             $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  941.             $(NetEventDLL)
  942.                 Set OEM_ABANDON_SOFTWARE = TRUE
  943.  
  944.  
  945.  
  946.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  947.             Debug-Output "ShellCode error"
  948.             goto ShellCodeError
  949.         endif
  950.  
  951.         ;
  952.         ;   At this point:
  953.         ;     $R1 contains the product version key handle;
  954.         ;     $R2 contains the NetRules subkey handle;
  955.         ;     $R3 contains the new Services key handle; and
  956.         ;     $R4 contains the Parameters key
  957.         ;     $R5 contains the Linkage Key
  958.         ;
  959.         set RegistryErrorIndex = $($R0)
  960.         set KeyProduct      = $($R1)
  961.         Set SoftNetRulesKey = $($R2)
  962.         CloseRegKey $($R3)
  963.         CloseRegKey $($R4)
  964.         CloseRegKey $($R5)
  965.  
  966.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  967.             EndWait
  968.             Debug-Output "Registry error: add software components"
  969.             CloseRegKey $(KeyProduct)
  970.             CloseRegKey $(SoftNetRulesKey)
  971.             goto fatalregistry
  972.         endif
  973.  
  974.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  975.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  976.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  977.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  978.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  979.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  980.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  981.  
  982.         Debug-Output "At AddValueList - SoftwareType"
  983.         Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  984.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  985.             Debug-Output "ShellCode error."
  986.             goto ShellCodeError
  987.         endif
  988.  
  989.         set RegistryErrorIndex = $($R0)
  990.  
  991.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  992.             EndWait
  993.             Debug-Output "Registry error: add value list."
  994.             CloseRegKey $(KeyProduct)
  995.             CloseRegKey $(SoftNetRulesKey)
  996.             goto fatalregistry
  997.         endif
  998.  
  999.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  1000.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  1001.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  1002.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  1003.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  1004.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  1005.  
  1006.         Debug-Output "At AddValueList - bindform"
  1007.         Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  1008.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1009.             Debug-Output "ShellCode error."
  1010.             goto ShellCodeError
  1011.         endif
  1012.  
  1013.         set RegistryErrorIndex = $($R0)
  1014.  
  1015.         CloseRegKey $(KeyProduct)
  1016.         CloseRegKey $(SoftNetRulesKey)
  1017.  
  1018.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1019.             EndWait
  1020.             Debug-Output "Resgitry error: add value list."
  1021.             goto fatalregistry
  1022.         endif
  1023.     endif
  1024.  
  1025.     ;
  1026.     ; Create the HARDWARE\Netcard region and its corresponding service
  1027.     ;
  1028. CreateDriverEntry = +
  1029.  
  1030.     set CardInstalled = "NO"
  1031.  
  1032.     set BusNum = 0
  1033.     set SlotNum = 1
  1034.  
  1035.     ifstr(i) $(Option) == "O100PCI"
  1036.        set MapRegistersValue = "10"
  1037.        set BusTypeValue = "5"
  1038.     endif
  1039.  
  1040.     Debug-Output "MapRegistersValue: $(MapRegistersValue)"
  1041.  
  1042.     Debug-Output "Adding registry parameters, BusNum $(BusNum) SlotNum $(SlotNum)"
  1043.  
  1044.     ifstr $(SlotNum) != "0"
  1045.         ifstr $(DriverOnly) == "TRUE"
  1046.             set Retval0 = "NO_ERROR"
  1047.             set Retval1 = "NO"
  1048.         else
  1049. ;           Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNum), +
  1050.             Shell "", IsO100CardAlreadyInstalled, $(BusNum), +
  1051.                   $(SlotNum), $(ProductHardwareDescription), $(ProductHardwareName)
  1052.             set Retval0 = $($R0)
  1053.             set Retval1 = $($R1)
  1054.         endif
  1055.  
  1056.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1057.             goto ShellCodeError
  1058.         endif
  1059.  
  1060.         ifstr $(Retval0) != "NO_ERROR"
  1061.             set Error = $($R0)
  1062.             goto fatal
  1063.         endif
  1064.  
  1065.         ifstr(i) $(Retval1) != "YES"
  1066.             Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  1067.  
  1068.             ifint $($R4) != -1
  1069.                 Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  1070.             endif
  1071.  
  1072.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1073.                 goto ShellCodeError
  1074.             endif
  1075.  
  1076.             set RegistryErrorIndex = $($R0)
  1077.  
  1078.             Ifstr(i) $(RegistryErrorIndex) != "NO_ERROR"
  1079.                 EndWait
  1080.                 CloseRegKey $($R1)
  1081.                 CloseRegKey $($R2)
  1082.                 CloseRegKey $($R3)
  1083.                 goto fatalregistry
  1084.             endif
  1085.  
  1086.             ;
  1087.             ;   At this point:
  1088.             ;     $R1  Registry key variable for HARDWARE\Netcard\(n)
  1089.             ;     $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
  1090.             ;     $R3  Registry key handle for <service>\Parameters key
  1091.             ;     $R4  Adapter number assigned to adapter
  1092.             ;     $R5  Service name generated by combining svc name with adapter number
  1093.             ;
  1094.             Set HardNetCardKey      = $($R1)
  1095.             Set HardNetRuleKey      = $($R2)
  1096.             Set HardParameterKey    = $($R3)
  1097.             set AdapterNumber       = $($R4)
  1098.  
  1099.             set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  1100.                                {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
  1101.                                {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
  1102.                                {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  1103.                                {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  1104.                                {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  1105.  
  1106.             Shell  $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
  1107.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1108.                 goto ShellCodeError
  1109.             endif
  1110.  
  1111. ; kroot
  1112.             ; get our services subkey so the DLL know our current instance
  1113.  
  1114.             Debug-Output "***************** Get the instance 2 *****************"
  1115.             OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  1116.                   $(MAXIMUM_ALLOWED) NetworkCardKey
  1117.  
  1118.             Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  1119.                 ;
  1120.                 ; Get Service name
  1121.                 ;
  1122.                 GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  1123.                 set ServiceName = *($(ServiceNameInfo), 4)
  1124.  
  1125.  
  1126.                 CloseRegKey $(NetworkCardKey)
  1127.             else
  1128.                 ;
  1129.                 ; Error, cannot open network card key
  1130.                 ;
  1131.                 Debug-Output "Unable to open NTN_RegBase: $(!NTN_RegBase)"
  1132.                 set ServiceName = ""
  1133.  
  1134.                 ;goto setfailed
  1135.             endif
  1136. ; kroot
  1137.  
  1138.             Debug-Output "My service name is $(ServiceName)"
  1139.             ;
  1140.             ; Put up the dialog box and allow the user to configure
  1141.             ; FIFO, ON, OFF parameters.  We have found the board in a
  1142.             ; particular slot so we won't allow them to alter the slot
  1143.             ; parameter yet.
  1144.             ;
  1145.  
  1146.             ifstr(i) $(Option) == "O100PCI"
  1147.                 LibraryProcedure MyResult $(MYLIBHANDLE), ConfigFunc, +
  1148.                                  $(!STF_HWND), 5, $(ServiceName)
  1149.             endif
  1150.  
  1151.             ;*--- this is if the user cancelled from the dialog box ---*
  1152.             ifstr(i) $(MyResult) == "CANCEL"
  1153.                 goto setfailed
  1154.             endif
  1155.  
  1156.             ; I want the thing after the if to get the values from the dll
  1157.             ifstr(i) $(MyResult) == "OK"
  1158.                 ;
  1159.                 ; If the user says it's OK, go get the new parameter values...
  1160.                 ;
  1161.  
  1162.                 LibraryProcedure ValueList2 $(MYLIBHANDLE), GetValues, $(!STF_HWND), $(!NCPA_HANDLE)
  1163.                 Debug-Output "VallistAfter:  $(ValueList2)"
  1164.  
  1165.                 ;
  1166.                 ; Set the values to the returned values
  1167.                 ;
  1168.                 ifstr(i) $(Option) == "O100PCI"
  1169.                     set NodeAddressValue = *($(ValueList2),2)
  1170.                     Debug-Output "NodeAddr returned to inf:  $(NodeAddressValue)"
  1171.                 endif
  1172.                 set SpeedValue = *($(ValueList2),3)
  1173.                 set ThresholdValue = *($(ValueList2),4)
  1174.                 set FifoValue = *($(ValueList2),5)
  1175.                 set OnValue = *($(ValueList2),6)
  1176.                 set OffValue = *($(ValueList2),7)
  1177.                 set MapRegistersValue = *($(ValueList2),8)
  1178.                 ifstr(i) $(SpeedValue) == "Auto Detect"
  1179.                    set SpeedValue = 0
  1180.                 endif
  1181.             endif
  1182.                 Debug-Output "Slot: $(SlotValue)"
  1183.                 Debug-Output "BusTypeLocal: $(BusTypeValue)"
  1184.                 Debug-Output "Speed: $(SpeedValue)"
  1185.                 Debug-Output "Threshold: $(ThresholdValue)"
  1186.                 Debug-Output "Fifo: $(FifoValue)"
  1187.                 Debug-Output "On: $(OnValue)"
  1188.                 Debug-Output "Off: $(OffValue)"
  1189.                 Debug-Output "MapRegisters: $(MapRegistersValue)"
  1190.  
  1191.                 Debug-Output "NodeAddress: $(NodeAddressValue)"
  1192.  
  1193.                 FreeLibrary $(MYLIBHANDLE)
  1194.  
  1195.                 set CardInstalled = "YES"
  1196.  
  1197.                 ifstr(i) $(Option) == "O100PCI"
  1198.                     set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeValue)},+
  1199.                                         {BusTypeLocal,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeValue)},+
  1200.                                         {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  1201.                                         {Fifo,$(NoTitle),$(!REG_VT_DWORD),$(FifoValue)},+
  1202.                                         {On,$(NoTitle),$(!REG_VT_DWORD),$(OnValue)},+
  1203.                                         {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
  1204.                                         {Off,$(NoTitle),$(!REG_VT_DWORD),$(OffValue)},+
  1205.                                         {Speed,$(NoTitle),$(!REG_VT_DWORD),$(SpeedValue)},+
  1206.                                         {MapRegisters,$(NoTitle),$(!REG_VT_DWORD),$(MapRegistersValue)},+
  1207.                                         {Eid,$(NoTitle),$(!REG_VT_DWORD),$(NodeAddressValue)},+
  1208.                                         {Threshold,$(NoTitle),$(!REG_VT_DWORD),$(ThresholdValue)}+
  1209.                                        }
  1210.  
  1211.                     Debug-Output "writeParam2: PCI NewValueList going to registry:  $(NewValueList)"
  1212.                 endif
  1213.  
  1214.                 Shell  $(UtilityInf), AddValueList, $(HardParameterKey), $(NewValueList)
  1215.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1216.                     goto ShellCodeError
  1217.                 endif
  1218.  
  1219.                 set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  1220.                 set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  1221.                 set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  1222.                                     {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  1223.                                     {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  1224.                                     {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)} }
  1225.                 Shell  $(UtilityInf), AddValueList, $(HardNetRuleKey), $(NewValueList)
  1226.  
  1227.                 CloseRegKey $(HardNetCardKey)
  1228.                 CloseRegKey $(HardNetRuleKey)
  1229.                 CloseRegKey $(HardParameterKey)
  1230.                 ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1231.                     goto ShellCodeError
  1232.                 endif
  1233.             endif
  1234.         endif
  1235.  
  1236.         ifstr $(DriverOnly) == "TRUE"
  1237.             goto writeparameters2
  1238.         endif
  1239.  
  1240.     ;
  1241.     ; If no cards were installed, it means that either there were no cards
  1242.     ; found (NoCard = TRUE) or all cards in the system have already had
  1243.     ; drivers installed for them (CardInstalled = NO).
  1244.     ;
  1245.     ; What we want to do here is allow the user to install the driver for
  1246.     ; a board that is not yet in the system.  This way the user can get the
  1247.     ; driver installed, shutdown NT, install the adapter and reboot.
  1248.     ; If we don't let the user install a driver for a non-existent board,
  1249.     ; then he has to shutdown NT, install the board, reboot, install the
  1250.     ; driver, shutdown and then reboot again - what a pain.
  1251.     ;
  1252. AddDriverWithoutBoard =  +
  1253.     ifstr $(NoCard) == "TRUE"
  1254.         ;
  1255.         ; NOTE: this will only work for O100 boards
  1256.         ;
  1257.         ; note this is for speedo - fl32 will have to change if installed
  1258.         set AdapterList = {{"0", "10", "269538341"}}
  1259.         set DriverOnly = "TRUE"
  1260.         set NoCard = "FALSE"
  1261.         goto ContinueInst
  1262.     endif
  1263.  
  1264.  
  1265.     ifstr $(CardInstalled) == "NO"
  1266. ; kroot!!!
  1267. ; This message happens when it shouldn't
  1268.         Shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "Got that bogus message again. Show Ken how you got here!"
  1269.  
  1270.         ;
  1271.         ; NOTE: this will only work for O100 boards
  1272.         ;
  1273.         ; this is for speedo
  1274.         set AdapterList = {{"0", "10", "269538341"}}
  1275.         set DriverOnly = "TRUE"
  1276.         goto ContinueInst
  1277.     endif
  1278.  
  1279. ;
  1280. ; REQUIRED:   $(KeyParameters) contains service Parameters key handle
  1281. ;
  1282. writeparameters2 = +
  1283.     Debug-Output "At writeparameters"
  1284.     EndWait
  1285.     goto successful
  1286.  
  1287. ;-----------------------------------------------
  1288. ; Binding section
  1289. ;-----------------------------------------------
  1290. bindingadapter =+
  1291.     Debug-Output "At bindingadapter"
  1292.     set Error = "Binding: Sorry, not yet implemented."
  1293.     goto fatal
  1294.  
  1295. ;-----------------------------------------------
  1296. ; Removeadapter section
  1297. ;-----------------------------------------------
  1298.  
  1299. removeadapter = +
  1300.     Debug-Output "At removeadapter"
  1301.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1302.         ;
  1303.         ; Remove Software Component
  1304.         ;
  1305.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1306.             $(ProductSoftwareName)
  1307.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1308.             Debug-Output "ShellCode error"
  1309.             goto ShellCodeError
  1310.         endif
  1311.  
  1312.         set RegistryErrorIndex = $($R0)
  1313.  
  1314.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1315.             goto fatalregistry
  1316.         endif
  1317.     else
  1318.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1319.             $(ProductSoftwareName), $(!NTN_RegBase)
  1320.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1321.             Debug-Output "ShellCode error"
  1322.             goto ShellCodeError
  1323.         endif
  1324.  
  1325.         set RegistryErrorIndex = $($R0)
  1326.  
  1327.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1328.             goto fatalregistry
  1329.         endif
  1330.     endif
  1331.         ; look to see if it can be removed
  1332.         Debug-Output "Before call to InfLookup"
  1333.  
  1334.         LoadLibrary "x" $(!STF_NTPATH)\O100NT.DLL MYLIBHANDLE
  1335.         LibraryProcedure MyResult $(MYLIBHANDLE), SharedInfSearch, $(!STF_HWND), $(!NCPA_HANDLE), $(STF_CONTEXTINFNAME)
  1336.     FreeLibrary $(MYLIBHANDLE)
  1337.         Debug-Output "MyResult: $(MyResult)"
  1338.  
  1339.         Debug-Output "After call to InfLookup"
  1340.  
  1341.         ifstr(i) $(MyResult) != "FOUND_SOME"
  1342.            ; delete it from the registry
  1343.            set RegInfFileNameKey = "SYSTEM\Setup\InfOptions"
  1344.            OpenRegKey $(!REG_H_LOCAL) "" $(RegInfFileNameKey) $(MAXIMUM_ALLOWED) ProductKey
  1345.        Ifstr $(ProductKey) == $(KeyNull)
  1346.           Debug-Output "OEMSETUP.INF: could not open Software product key"
  1347.        endif
  1348.        DeleteRegTree $(ProductKey) $(MyResult)
  1349.        CloseRegKey $(ProductKey)
  1350.  
  1351.            ;delete it from the disk
  1352.            Debug-Output "nuking STF_CONTEXTINFNAME="$(STF_CONTEXTINFNAME)
  1353.            LoadLibrary "x" $(!STF_CWDDIR)\setupdll.dll !LIBHANDLE
  1354.            LibraryProcedure Status1, $(!LIBHANDLE), DelFile, $(STF_CONTEXTINFNAME)
  1355.            FreeLibrary $(!LIBHANDLE)
  1356.         endif
  1357.     goto end
  1358.  
  1359. ;-----------------------------------------------
  1360. ; Upgrade Software section
  1361. ;-----------------------------------------------
  1362.  
  1363. UpgradeSoftware = +
  1364.     Debug-Output "At UpgradeSoftware"
  1365.     ;
  1366.     ; First determine whether we want to do upgrade or update for software
  1367.     ; or hardware component. Then we will determine whether the Mode is
  1368.     ; update or upgrade.
  1369.     ;
  1370.     ; If the same version of the product existed in the registry, we do
  1371.     ; update. Otherwise, we will do an upgrade.
  1372.     ;
  1373.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  1374.         ; Upgrade software component
  1375.         ;
  1376.         ; see whether the same version exist or not
  1377.         ;
  1378.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  1379.  
  1380.         Ifstr $(KeyProduct) != $(KeyNull)
  1381.             GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  1382.             set Version = *($(VersionInfo), 4)
  1383.  
  1384.             ;
  1385.             ; Update the binaries
  1386.             ;
  1387.             Split-String $(!NTN_Infname), "\", FilenameList
  1388.             QueryListSize ListSize $(FilenameList)
  1389.             set !UG_Filename = *($(FilenameList), $(ListSize))
  1390.  
  1391.             install "Install-Update"
  1392.             ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  1393.                 goto fatal
  1394.             endif
  1395.  
  1396.             ; Upgrade the version number
  1397.             ;
  1398.             SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  1399.             SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  1400.  
  1401.             ;
  1402.             ; do nothing for update
  1403.             ;
  1404.             ifint $(Version) != $(ProductVersion)
  1405.                ;
  1406.                ; If the major version number is not the same,
  1407.                ; it is major upgrade. So let's Upgrade the product
  1408.                ;
  1409.                ; make other upgrade change if necessary
  1410.                ;
  1411.             endif
  1412.             CloseRegKey $(KeyProduct)
  1413.         else
  1414.             ;
  1415.             ; Cannot Open software key, goto ERROR
  1416.             ;
  1417.             goto fatalregistry
  1418.         endif
  1419.     else
  1420.         ;
  1421.         ; upgrade/update hardware component
  1422.         ; There is no different between upgrade and update for hardware
  1423.         ; component
  1424.         ;
  1425.         ; 1. Get the Service Name
  1426.         ; 2. Change the NetRule section if necessary
  1427.         ;
  1428.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  1429.               $(MAXIMUM_ALLOWED) NetworkCardKey
  1430.         Ifstr(i) $(NetworkCardKey) != $(KeyNull)
  1431.             ;
  1432.             ; Get Service name
  1433.             ;
  1434.             GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  1435.             set ServiceName = *($(ServiceNameInfo), 4)
  1436.  
  1437.             ;
  1438.             ; Change the NetRule if necessary
  1439.             ;
  1440.             OpenRegKey $(NetworkCardKey) "" "NetRules" +
  1441.                 $(MAXIMUM_ALLOWED) NetRuleKey
  1442.             Ifstr(i) $(NetRuleKey) != $(KeyNull)
  1443.                 ;
  1444.                 ; Make the change....
  1445.                 ;
  1446.             else
  1447.                 ;
  1448.                 ; Error, cannot open net rules key
  1449.                 ;
  1450.                 goto fatalregistry
  1451.             endif
  1452.  
  1453.             CloseRegKey $(NetRules)
  1454.             CloseRegKey $(NetworkCardKey)
  1455.         else
  1456.             ;
  1457.             ; Error, cannot open network card key
  1458.             ;
  1459.             goto fatalregistry
  1460.         endif
  1461.         ;
  1462.         ; 3. Change the service section of the hardware. i.e.,
  1463.         ;    ParameterName change, value change, etc.
  1464.         ;
  1465.         OpenRegKey $(!REG_H_LOCAL) "" +
  1466.               $(!NTN_ServiceBase)"\"$(ServiceName) +
  1467.               $(MAXIMUM_ALLOWED) ServiceKey
  1468.  
  1469.         Ifstr(i) $(ServiceKey) != $(KeyNull)
  1470.             ;
  1471.             ; Get the ServiceKey to change the Start value
  1472.             ; or Type value. Or open Parameters key to
  1473.             ; change the hardware parameters if necessary.
  1474.             ;
  1475.             CloseRegKey $(ServiceKey)
  1476.         else
  1477.             ;
  1478.             ; Error, cannot open network card key
  1479.             ;
  1480.             goto fatalregistry
  1481.         endif
  1482.     endif
  1483.  
  1484.     goto end
  1485.     ;
  1486.     ; End of Upgrade Software
  1487.     ;
  1488.  
  1489. ;
  1490. ;  Escape hatches
  1491. ;
  1492. successful = +
  1493.     Debug-Output "At successful"
  1494.     goto end
  1495.  
  1496. abandon = +
  1497.     Debug-Output "At abandon"
  1498.     ForListDo $(OEM_ABANDON_OPTIONS)
  1499.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  1500.             $(ProductSoftwareName), $($)
  1501.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1502.             Debug-Output "ShellCode error"
  1503.             goto ShellCodeError
  1504.         endif
  1505.  
  1506.         set RegistryErrorIndex = $($R0)
  1507.  
  1508.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1509.             goto fatalregistry
  1510.         endif
  1511.     EndForListDo
  1512.  
  1513.     ; remove the inf file here
  1514.         ; look to see if it can be removed
  1515.         Debug-Output "Before call to InfLookup"
  1516.  
  1517.         LoadLibrary "x" $(!STF_NTPATH)\O100NT.DLL MYLIBHANDLE
  1518.         LibraryProcedure MyResult $(MYLIBHANDLE), SharedInfSearch, $(!STF_HWND), $(!NCPA_HANDLE), $(STF_CONTEXTINFNAME)
  1519.     FreeLibrary $(MYLIBHANDLE)
  1520.         Debug-Output "MyResult: $(MyResult)"
  1521.  
  1522.         Debug-Output "After call to InfLookup"
  1523.  
  1524.         ;
  1525.         ifstr(i) $(MyResult) != "FOUND_SOME"
  1526.            ; delete it from the registry
  1527.            set RegInfFileNameKey = "SYSTEM\Setup\InfOptions"
  1528.            OpenRegKey $(!REG_H_LOCAL) "" $(RegInfFileNameKey) $(MAXIMUM_ALLOWED) ProductKey
  1529.        Ifstr $(ProductKey) == $(KeyNull)
  1530.           Debug-Output "OEMSETUP.INF: could not open Software product key"
  1531.        endif
  1532.        DeleteRegTree $(ProductKey) $(MyResult)
  1533.        CloseRegKey $(ProductKey)
  1534.  
  1535.            ; delete it from the disk
  1536.        Debug-Output "nuking STF_CONTEXTINFNAME="$(STF_CONTEXTINFNAME)
  1537.        LoadLibrary "x" $(!STF_CWDDIR)\setupdll.dll !LIBHANDLE
  1538.        LibraryProcedure Status1, $(!LIBHANDLE), DelFile, $(STF_CONTEXTINFNAME)
  1539.        FreeLibrary $(!LIBHANDLE)
  1540.         endif
  1541.  
  1542.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  1543.         ; Remove Software Component
  1544.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  1545.             $(ProductSoftwareName), FALSE
  1546.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1547.             Debug-Output "ShellCode error"
  1548.             goto ShellCodeError
  1549.         endif
  1550.  
  1551.         set RegistryErrorIndex = $($R0)
  1552.  
  1553.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  1554.             goto fatalregistry
  1555.         endif
  1556.     endif
  1557.  
  1558.     goto end
  1559.  
  1560. ;
  1561. ; warning display
  1562. ;
  1563. warning = +
  1564.     Debug-Output "At warning"
  1565.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  1566.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1567.         goto ShellCodeError
  1568.     endif
  1569.     ifstr(i) $($R1) == "OK"
  1570.         goto $(to)
  1571.     else-ifstr(i) $($R1) == "CANCEL"
  1572.         goto $(from)
  1573.     else
  1574.         goto "end"
  1575.     endif
  1576. ;
  1577. ; non fatal error display
  1578. ;
  1579. nonfatalinfo = +
  1580.     Debug-Output "At nonfatalinfo"
  1581.     Set Severity = STATUS
  1582.     Set CommonStatus = STATUS_USERCANCEL
  1583.     goto nonfatalmsg
  1584.  
  1585. nonfatal = +
  1586.     Debug-Output "At nonfatal"
  1587.     Set Severity = NONFATAL
  1588.     goto nonfatalmsg
  1589.  
  1590. nonfatalmsg = +
  1591.     Debug-Output "At nonfatalmsg"
  1592.     ifstr(i) $(Error) == ""
  1593.         Set Severity = NONFATAL
  1594.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1595.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1596.             goto ShellCodeError
  1597.         endif
  1598.         set Error = $($R0)
  1599.     endif
  1600.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  1601.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1602.         goto ShellCodeError
  1603.     endif
  1604.     ifstr(i) $($R1) == "OK"
  1605.         goto $(from)
  1606.     else
  1607.         goto "end"
  1608.     endif
  1609.  
  1610. ;
  1611. ;  Registry is broken
  1612. ;
  1613. fatalregistry = +
  1614.     Debug-Output "At fatalregistry"
  1615.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  1616.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1617.         goto ShellCodeError
  1618.     endif
  1619.     set Error = $($R0)
  1620.     goto fatal
  1621. ;
  1622. ; fatal error display
  1623. ;
  1624. fatal = +
  1625.     Debug-Output "At fatal"
  1626.     ifstr(i) $(Error) == ""
  1627.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  1628.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1629.             goto ShellCodeError
  1630.         endif
  1631.         set Error = $($R0)
  1632.     endif
  1633.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  1634.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1635.         goto ShellCodeError
  1636.     endif
  1637.  
  1638.     goto setfailed
  1639.  
  1640. ;
  1641. ;  Shelling error
  1642. ;
  1643. ShellCodeError = +
  1644.     Debug-Output "At ShellCodeError"
  1645.     set DlgType      = "MessageBox"
  1646.     set STF_MB_TITLE = "Error: "$(FunctionTitle)
  1647.     set STF_MB_TEXT  = "Shell Code Error"
  1648.     set STF_MB_TYPE  = 1
  1649.     set STF_MB_ICON  = 3
  1650.     set STF_MB_DEF   = 1
  1651.     ui start "Error Message"
  1652.     goto setfailed
  1653.  
  1654. setfailed = +
  1655.     Debug-Output "At setfailed"
  1656.     set CommonStatus = STATUS_FAILED
  1657.     ;
  1658.     ; if OEM_ABANDON_ON == TRUE, then remove the registry entries
  1659.     ;
  1660.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  1661.         set OEM_ABANDON_ON = FALSE
  1662.         goto abandon
  1663.     endif
  1664.     goto end
  1665.  
  1666. end = +
  1667.     Debug-Output "At end"
  1668.     goto term
  1669.  
  1670. term = +
  1671.     Debug-Output "At term"
  1672.     Return $(CommonStatus)
  1673.  
  1674.  
  1675. [DebugConfiguration]
  1676.     return
  1677.  
  1678.  
  1679. ;***************************************************************
  1680. ;  INSTALL SECTIONS
  1681. ;***************************************************************
  1682. [Install-Option]
  1683.     Debug-Output "At Install-Option"
  1684.     set STF_VITAL = ""
  1685.  
  1686.     ifstr(i) $(AddCopy) == "YES"
  1687.  
  1688.         Debug-Output "AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers"
  1689.  
  1690.         ;
  1691.         ; Add the files to the copy list
  1692.         ;
  1693.         ;  BUGBUG: eliminate the "nt2" in the next line when Sunil fixes
  1694.         ;      the other INF files
  1695.         ;
  1696.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1697.                 AddSectionFilesToCopyList Files-AUX $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1698.  
  1699.     endif
  1700.  
  1701.     ifstr(i) $(DoCopy) == "YES"
  1702.  
  1703.        Debug-Output "CopyFilesInCopyList"
  1704.  
  1705.        ;
  1706.        ; Copy files in the copy list
  1707.        ;
  1708.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1709.        CopyFilesInCopyList
  1710.  
  1711.     endif
  1712.  
  1713.     Exit
  1714.  
  1715. [Install-Update]
  1716.     Debug-Output "At Install-Update"
  1717.    set STF_VITAL        = ""
  1718.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1719.    ;set STF_VERSION     = "YES"
  1720.  
  1721.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1722.    AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1723.  
  1724.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1725.    CopyFilesInCopyList
  1726.  
  1727.    exit
  1728.  
  1729.  
  1730. [IsO100CardAlreadyInstalled]
  1731.     read-syms InitBaseVars
  1732.     set AlreadyExisted  = "NO"
  1733.     set BusNum  = $($0)
  1734.     set SlotNum = $($1)
  1735.     set Description = $($2)
  1736.     set Product = $($3)
  1737.     OpenRegKey $(!REG_H_LOCAL) "" $(NetworkCardKeyName) $(MAXIMUM_ALLOWED) IE_KeyNetcards
  1738.     Ifstr $(IE_KeyNetcards) == $(KeyNull)
  1739.        set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
  1740.        goto IE_Return
  1741.     endif
  1742.     EnumRegKey $(IE_KeyNetcards) IE_KeyNameList
  1743.     ForListDo  $(IE_KeyNameList)
  1744.         set IE_KeyName = *($($),1)
  1745.         OpenRegKey $(IE_KeyNetcards) "" $(IE_KeyName) $(MAXIMUM_ALLOWED) IE_Card
  1746.         Ifstr $(IE_Card) == $(KeyNull)
  1747.            set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
  1748.            goto IE_Return
  1749.         endif
  1750.         GetRegValue $(IE_Card),"Description", DescriptionInfo
  1751.         GetRegValue $(IE_Card),"ProductName", ProductNameInfo
  1752.         set CardDescription     = *($(DescriptionInfo), 4)
  1753.         set CardProductName     = *($(ProductNameInfo), 4)
  1754.         ifstr(i) $(CardDescription) == $(Description)
  1755.             ifstr(i) $(CardProductName) == $(Product)
  1756.                 GetRegValue $(IE_Card), "ServiceName", ServiceNameInfo
  1757.                 set ServiceName = *($(ServiceNameInfo), 4)
  1758.                 OpenRegKey $(!REG_H_LOCAL) "" +
  1759.                    $(ServicesBaseName)"\"$(ServiceName)"\Parameters" +
  1760.                    $(MAXIMUM_ALLOWED) IE_KeyService
  1761.                 Ifstr $(IE_KeyService) == $(KeyNull)
  1762.                    set RegistryErrorIndex = UNABLE_OPEN_NETWORKCARD_SECTION
  1763.                    goto IE_Return
  1764.                 endif
  1765.                 GetRegValue $(IE_KeyService), "BusNumber", BusInfo
  1766.                 GetRegValue $(IE_KeyService), "Slot", SlotInfo
  1767.                 set CardBusNum = *($(BusInfo), 4)
  1768.                 set CardSlotNum = *($(SlotInfo), 4)
  1769.                 ifint $(CardBusNum) == $(BusNum)
  1770.                     ifint $(CardSlotNum) == $(SlotNum)
  1771.                         set AlreadyExisted = "YES"
  1772.                     endif
  1773.                 endif
  1774.             endif
  1775.         endif
  1776.     EndForListDo
  1777. IE_Return = +
  1778.     return $(RegistryErrorIndex) $(AlreadyExisted)
  1779.  
  1780. [InitBaseVars]
  1781. KeyNull            = ""
  1782. MAXIMUM_ALLOWED    = 33554432
  1783. KeyInfo            = {}
  1784. RegistryErrorIndex = NO_ERROR
  1785. NoTitle            = 0
  1786. CurrentControlSet  = "SYSTEM\CurrentControlSet"
  1787. ServicesBaseName   = $(CurrentControlSet)"\Services"
  1788. NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
  1789. !RegLastError      = NO_ERROR
  1790. [RegistryErrorSetup]
  1791. RegistryErrorIndex = ^(RegistryErrors$(!STF_LANGUAGE),1)
  1792. RegistryErrorList = ^(RegistryErrors$(!STF_LANGUAGE),2)
  1793. 
  1794.